package com.example.model23.test2;

/**
 * @Author : zhangbo
 * @data : 2025/4/1
 * @description :策略模式
 *
 * 策略模式 关注于定义一系列可互相替换的算法，客户端代码在运行时可以根据需要选择具体的算法。
 * 策略模式将算法的选择与算法的实现分离开来，使得算法可以独立于使用它们的客户变化。
 */
public class test2 {
    // 客户端代码
    public class StrategyPatternDemo {
        public static void main(String[] args) {
            Context context = new Context(new Addition());
            System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
            context.setStrategy(new Subtraction());
            System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
            context.setStrategy(new Multiplication());
            System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
        }
    }

}
